<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 破坏回文串 -->
    <script>
      var breakPalindrome = function (palindrome) {
        let n = palindrome.length
        // 任意长度为 1 的字符串一定是回文串，所以无论如果替换都是回文串
        if (n < 2) return ''
        // 只需要替换任意一个不在对称中心位置上的字符
        let half = n >> 1
        let arr = palindrome.split('')
        for (let i = 0; i < half; i++) {
          // 从前往后替换才能保证字典序最小
          let c = arr[i]
          if (c != 'a') {
            arr[i] = 'a'
            return arr.join('')
          }
        }
        // 当所有的字符都变成了a了，这时最小的字典库就是把最后一个变成b
        arr[n - 1] = 'b'
        return arr.join('')
      }
      console.log(breakPalindrome('abccba'))
    </script>
  </body>
</html>
